// 继承:类与类之间的关系
// 继承后类与类之间的叫法
// A类继承了B这个类,那么此时A类叫子类,B类叫基类
// 子类 ---->派生类
// 基类 ----> 超类(父类)
// 一旦发生了继承关系,就出现了父子类的关系
;
(() => {
    // 定义一个类
    class Person {
        constructor(name, age, gender) {
            this.name = name;
            this.age = age;
            this.gender = gender;
        }
        sayHi() {
            console.log(this.name);
        }
    }
    // 定义一个类,继承自Person
    class Student extends Person {
        constructor(name, age, gender) {
            // 调用的是父类中的构造函数,使用的是super
            super(name, age, gender);
        }
        sayHi() {
            console.log('子类');
            super.sayHi();
        }
    }
    // 实例化Person
    const person = new Person('2', 2, '2');
    const stu = new Student('1', 1, '1');
    console.log(person, stu);
    stu.sayHi();
    // 总结:类和类之间如果要有继承关系,需要使用extends关键字
    // 子类中可以调用父类中的构造函数,使用的是super关键字(包括调用父类中的实例方法，也可以使用super)
    // 子类可以重写父类中的方法
})();
